const express = require("express");

// 创建app对象
const app = express();

app.use(express.json());

// 编写中间件
// 服务器返回给客户端的错误信息
// 方案1 返回http状态码（是错误的）
// 方案2 返回http状态码200  但是后续会有错误的信息 {code: xx , msg:xx , data:[]}


app.post("/login", (req, res, next) => {
    // 1.获取登录传入的用户名和密码
    const { username, password } = req.body;

    // 2.对用户名和密码进行判断
    if (!username || !password) {
        next(-1001); // 传参 参数就是error
    } else if (username !== "coderwhy" || password !== "123456") {
        next(-1002);
    } else {
        res.json({
            code: 0,
            message: "登录成功, 欢迎回来~",
            token: "323dfafadfa3222",
        });
    }
});

// 错误处理的中间件
app.use((errCode, req, res, next) => {
    const code = errCode; // 接收的参数
    let message = "未知的错误信息";

    switch (code) {
        case -1001:
            message = "没有输入用户名和密码";
            break;
        case -1002:
            message = "输入用户名或密码错误";
            break;
    }

    res.json({ code, message });
});

// 启动服务器
app.listen(9000, () => {
    console.log("express服务器启动成功~");
});
